home *** CD-ROM | disk | FTP | other *** search
/ CD Exchange / CD Exchange - Volume 1.iso / utils / misc / mui_dev / mui20dev.lha / MUI / Developer / C / Include / libraries / mui.h
Encoding:
C/C++ Source or Header  |  1994-02-11  |  70.8 KB  |  1,895 lines

  1. /***************************************************************************
  2. **
  3. ** MUI - MagicUserInterface
  4. ** (c) 1993 by Stefan Stuntz
  5. **
  6. ** Main Header File
  7. **
  8. ****************************************************************************
  9. ** Class Tree
  10. ****************************************************************************
  11. **
  12. ** rootclass               (BOOPSI's base class)
  13. ** +--Notify               (implements notification mechanism)
  14. **    +--Application       (main class for all applications)
  15. **    +--Window            (handles intuition window related topics)
  16. **    +--Area              (base class for all GUI elements)
  17. **       +--Rectangle      (creates (empty) rectangles)
  18. **       +--Image          (creates images)
  19. **       +--Text           (creates some text)
  20. **       +--String         (creates a string gadget)
  21. **       +--Prop           (creates a proportional gadget)
  22. **       +--Gauge          (creates a fule gauge)
  23. **       +--Scale          (creates a percentage scale)
  24. **       +--Boopsi         (interface to BOOPSI gadgets)
  25. **       +--Colorfield     (creates a field with changeable color)
  26. **       +--List           (creates a line-oriented list)
  27. **       !  +--Floattext   (special list with floating text)
  28. **       !  +--Volumelist  (special list with volumes)
  29. **       !  +--Scrmodelist (special list with screen modes)
  30. **       !  \--Dirlist     (special list with files)
  31. **       +--Group          (groups other GUI elements)
  32. **          +--Virtgroup   (handles virtual groups)
  33. **          +--Scrollgroup (handles virtual groups with scrollers)
  34. **          +--Scrollbar   (creates a scrollbar)
  35. **          +--Listview    (creates a listview)
  36. **          +--Radio       (creates radio buttons)
  37. **          +--Cycle       (creates cycle gadgets)
  38. **          +--Slider      (creates slider gadgets)
  39. **          +--Coloradjust (creates some RGB sliders)
  40. **          +--Palette     (creates a complete palette gadget)
  41. **          +--Popstring   (base class for popups)
  42. **             +--Popobject(popup a MUI object in a window)
  43. **             \--Popasl   (popup an asl requester)
  44. **
  45. ****************************************************************************
  46. ** General Header File Information
  47. ****************************************************************************
  48. **
  49. ** All macro and structure definitions follow these rules:
  50. **
  51. ** Name                       Meaning
  52. **
  53. ** MUIC_<class>               Name of a class
  54. ** MUIM_<class>_<method>      Method
  55. ** MUIP_<class>_<method>      Methods parameter structure
  56. ** MUIV_<class>_<method>_<x>  Special method value
  57. ** MUIA_<class>_<attrib>      Attribute
  58. ** MUIV_<class>_<attrib>_<x>  Special attribute value
  59. ** MUIE_<error>               Error return code from MUI_Error()
  60. ** MUII_<name>                Standard MUI image
  61. ** MUIX_<code>                Control codes for text strings
  62. **
  63. ** MUIA_... attribute definitions are followed by a comment
  64. ** consisting of the three possible letters I, S and G.
  65. ** I: it's possible to specify this attribute at object creation time.
  66. ** S: it's possible to change this attribute with SetAttrs().
  67. ** G: it's possible to get this attribute with GetAttr().
  68. **
  69. ** Items marked with "Custom Class" are for use in custom classes only!
  70. */
  71.  
  72.  
  73. #ifndef LIBRARIES_MUI_H
  74. #define LIBRARIES_MUI_H
  75.  
  76. #ifndef EXEC_TYPES_H
  77. #include "exec/types.h"
  78. #endif
  79.  
  80. #ifndef INTUITION_CLASSES_H
  81. #include "intuition/classes.h"
  82. #endif
  83.  
  84. #ifndef INTUITION_SCREENS_H
  85. #include "intuition/screens.h"
  86. #endif
  87.  
  88. #ifndef CLIB_INTUITION_PROTOS_H
  89. #include "clib/intuition_protos.h"
  90. #endif
  91.  
  92.  
  93.  
  94. /***************************************************************************
  95. ** Library specification
  96. ***************************************************************************/
  97.  
  98. #define MUIMASTER_NAME "muimaster.library"
  99. #define MUIMASTER_VMIN 4
  100.  
  101.  
  102.  
  103. /***************************************************************************
  104. ** ARexx Interface
  105. ***************************************************************************/
  106.  
  107. struct MUI_Command
  108. {
  109.     char        *mc_Name;
  110.     char        *mc_Template;
  111.     LONG         mc_Parameters;
  112.     struct Hook *mc_Hook;
  113.     LONG         mc_Reserved[5];
  114. };
  115.  
  116. #define MC_TEMPLATE_ID ((STRPTR)~0)
  117.  
  118. #define MUI_RXERR_BADDEFINITION  -1
  119. #define MUI_RXERR_OUTOFMEMORY    -2
  120. #define MUI_RXERR_UNKNOWNCOMMAND -3
  121. #define MUI_RXERR_BADSYNTAX      -4
  122.  
  123.  
  124. /***************************************************************************
  125. ** Return values for MUI_Error()
  126. ***************************************************************************/
  127.  
  128. #define MUIE_OK                  0
  129. #define MUIE_OutOfMemory         1
  130. #define MUIE_OutOfGfxMemory      2
  131. #define MUIE_InvalidWindowObject 3
  132. #define MUIE_MissingLibrary      4
  133. #define MUIE_NoARexx             5
  134. #define MUIE_SingleTask          6
  135.  
  136.  
  137.  
  138. /***************************************************************************
  139. ** Standard MUI Images
  140. ***************************************************************************/
  141.  
  142. #define MUII_WindowBack     0   /* These images are configured   */
  143. #define MUII_RequesterBack  1   /* with the preferences program. */
  144. #define MUII_ButtonBack     2
  145. #define MUII_ListBack       3
  146. #define MUII_TextBack       4
  147. #define MUII_PropBack       5
  148. #define MUII_ActiveBack     6   /* obsolete, don't use! */
  149. #define MUII_SelectedBack   7
  150. #define MUII_ListCursor     8
  151. #define MUII_ListSelect     9
  152. #define MUII_ListSelCur    10
  153. #define MUII_ArrowUp       11
  154. #define MUII_ArrowDown     12
  155. #define MUII_ArrowLeft     13
  156. #define MUII_ArrowRight    14
  157. #define MUII_CheckMark     15
  158. #define MUII_RadioButton   16
  159. #define MUII_Cycle         17
  160. #define MUII_PopUp         18
  161. #define MUII_PopFile       19
  162. #define MUII_PopDrawer     20
  163. #define MUII_PropKnob      21
  164. #define MUII_Drawer        22
  165. #define MUII_HardDisk      23
  166. #define MUII_Disk          24
  167. #define MUII_Chip          25
  168. #define MUII_Volume        26
  169. #define MUII_PopUpBack     27
  170. #define MUII_Network       28
  171. #define MUII_Assign        29
  172. #define MUII_TapePlay      30
  173. #define MUII_TapePlayBack  31
  174. #define MUII_TapePause     32
  175. #define MUII_TapeStop      33
  176. #define MUII_TapeRecord    34
  177. #define MUII_GroupBack     35
  178. #define MUII_SliderBack    36
  179. #define MUII_SliderKnob    37
  180. #define MUII_TapeUp        38
  181. #define MUII_TapeDown      39
  182. #define MUII_Count         40
  183.  
  184. #define MUII_BACKGROUND    128    /* These are direct color    */
  185. #define MUII_SHADOW        129    /* combinations and are not  */
  186. #define MUII_SHINE         130    /* affected by users prefs.  */
  187. #define MUII_FILL          131
  188. #define MUII_SHADOWBACK    132    /* Generally, you should     */
  189. #define MUII_SHADOWFILL    133    /* avoid using them. Better  */
  190. #define MUII_SHADOWSHINE   134    /* use one of the customized */
  191. #define MUII_FILLBACK      135    /* images above.             */
  192. #define MUII_FILLSHINE     136
  193. #define MUII_SHINEBACK     137
  194. #define MUII_FILLBACK2     138
  195. #define MUII_HSHINEBACK    139
  196. #define MUII_HSHADOWBACK   140
  197. #define MUII_HSHINESHINE   141
  198. #define MUII_HSHADOWSHADOW 142
  199. #define MUII_N1HSHINE      143
  200. #define MUII_LASTPAT       143
  201.  
  202.  
  203.  
  204. /***************************************************************************
  205. ** Special values for some methods
  206. ***************************************************************************/
  207.  
  208. #define MUIV_TriggerValue 0x49893131
  209. #define MUIV_EveryTime    0x49893131
  210.  
  211. #define MUIV_Application_Save_ENV     ((STRPTR) 0)
  212. #define MUIV_Application_Save_ENVARC  ((STRPTR)~0)
  213. #define MUIV_Application_Load_ENV     ((STRPTR) 0)
  214. #define MUIV_Application_Load_ENVARC  ((STRPTR)~0)
  215.  
  216. #define MUIV_Application_ReturnID_Quit -1
  217.  
  218. #define MUIV_List_Insert_Top             0
  219. #define MUIV_List_Insert_Active         -1
  220. #define MUIV_List_Insert_Sorted         -2
  221. #define MUIV_List_Insert_Bottom         -3
  222.  
  223. #define MUIV_List_Remove_First           0
  224. #define MUIV_List_Remove_Active         -1
  225. #define MUIV_List_Remove_Last           -2
  226.  
  227. #define MUIV_List_Select_Off             0
  228. #define MUIV_List_Select_On              1
  229. #define MUIV_List_Select_Toggle          2
  230. #define MUIV_List_Select_Ask             3
  231.  
  232. #define MUIV_List_Jump_Active           -1
  233. #define MUIV_List_GetEntry_Active       -1
  234. #define MUIV_List_Select_Active         -1
  235. #define MUIV_List_Select_All            -2
  236.  
  237. #define MUIV_List_Redraw_Active         -1
  238. #define MUIV_List_Redraw_All            -2
  239.  
  240. #define MUIV_List_Exchange_Active       -1
  241.  
  242. #define MUIV_Colorpanel_GetColor_Active -1
  243. #define MUIV_Colorpanel_SetColor_Active -1
  244.  
  245.  
  246. /***************************************************************************
  247. ** Control codes for text strings
  248. ***************************************************************************/
  249.  
  250. #define MUIX_R "\033r"    /* right justified */
  251. #define MUIX_C "\033c"    /* centered        */
  252. #define MUIX_L "\033l"    /* left justified  */
  253.  
  254. #define MUIX_N "\033n"    /* normal     */
  255. #define MUIX_B "\033b"    /* bold       */
  256. #define MUIX_I "\033i"    /* italic     */
  257. #define MUIX_U "\033u"    /* underlined */
  258.  
  259. #define MUIX_PT "\0332"   /* text pen           */
  260. #define MUIX_PH "\0338"   /* highlight text pen */
  261.  
  262.  
  263.  
  264. /***************************************************************************
  265. ** Parameter structures for some classes
  266. ***************************************************************************/
  267.  
  268. struct MUI_Palette_Entry
  269. {
  270.     LONG  mpe_ID;
  271.     ULONG mpe_Red;
  272.     ULONG mpe_Green;
  273.     ULONG mpe_Blue;
  274.     LONG  mpe_Group;
  275. };
  276.  
  277. #define MUIV_Palette_Entry_End -1
  278.  
  279.  
  280. struct MUI_Scrmodelist_Entry
  281. {
  282.     char *sme_Name;
  283.     ULONG sme_ModeID;
  284. };
  285.  
  286.  
  287.  
  288. /***************************************************************************
  289. **
  290. ** Macro Section
  291. ** -------------
  292. **
  293. ** To make GUI creation more easy and understandable, you can use the
  294. ** macros below. If you dont want, just define MUI_NOSHORTCUTS to disable
  295. ** them.
  296. **
  297. ** These macros are available to C programmers only.
  298. **
  299. ***************************************************************************/
  300.  
  301. #ifndef MUI_NOSHORTCUTS
  302.  
  303.  
  304.  
  305. /***************************************************************************
  306. **
  307. ** Object Generation
  308. ** -----------------
  309. **
  310. ** The xxxObject (and xChilds) macros generate new instances of MUI classes.
  311. ** Every xxxObject can be followed by tagitems specifying initial create
  312. ** time attributes for the new object and must be terminated with the
  313. ** End macro:
  314. **
  315. ** obj = StringObject,
  316. **          MUIA_String_Contents, "foo",
  317. **          MUIA_String_MaxLen  , 40,
  318. **          End;
  319. **
  320. ** With the Child, SubWindow and WindowContents shortcuts you can
  321. ** construct a complete GUI within one command:
  322. **
  323. ** app = ApplicationObject,
  324. **
  325. **          ...
  326. **
  327. **          SubWindow, WindowObject,
  328. **             WindowContents, VGroup,
  329. **                Child, String("foo",40),
  330. **                Child, String("bar",50),
  331. **                Child, HGroup,
  332. **                   Child, CheckMark(TRUE),
  333. **                   Child, CheckMark(FALSE),
  334. **                   End,
  335. **                End,
  336. **             End,
  337. **
  338. **          SubWindow, WindowObject,
  339. **             WindowContents, HGroup,
  340. **                Child, ...,
  341. **                Child, ...,
  342. **                End,
  343. **             End,
  344. **
  345. **          ...
  346. **
  347. **          End;
  348. **
  349. ***************************************************************************/
  350.  
  351. #define WindowObject      MUI_NewObject(MUIC_Window
  352. #define ImageObject       MUI_NewObject(MUIC_Image
  353. #define NotifyObject      MUI_NewObject(MUIC_Notify
  354. #define ApplicationObject MUI_NewObject(MUIC_Application
  355. #define TextObject        MUI_NewObject(MUIC_Text
  356. #define RectangleObject   MUI_NewObject(MUIC_Rectangle
  357. #define ListObject        MUI_NewObject(MUIC_List
  358. #define PropObject        MUI_NewObject(MUIC_Prop
  359. #define StringObject      MUI_NewObject(MUIC_String
  360. #define ScrollbarObject   MUI_NewObject(MUIC_Scrollbar
  361. #define ListviewObject    MUI_NewObject(MUIC_Listview
  362. #define RadioObject       MUI_NewObject(MUIC_Radio
  363. #define VolumelistObject  MUI_NewObject(MUIC_Volumelist
  364. #define FloattextObject   MUI_NewObject(MUIC_Floattext
  365. #define DirlistObject     MUI_NewObject(MUIC_Dirlist
  366. #define SliderObject      MUI_NewObject(MUIC_Slider
  367. #define CycleObject       MUI_NewObject(MUIC_Cycle
  368. #define GaugeObject       MUI_NewObject(MUIC_Gauge
  369. #define ScaleObject       MUI_NewObject(MUIC_Scale
  370. #define BoopsiObject      MUI_NewObject(MUIC_Boopsi
  371. #define ColorfieldObject  MUI_NewObject(MUIC_Colorfield
  372. #define ColorpanelObject  MUI_NewObject(MUIC_Colorpanel
  373. #define ColoradjustObject MUI_NewObject(MUIC_Coloradjust
  374. #define PaletteObject     MUI_NewObject(MUIC_Palette
  375. #define GroupObject       MUI_NewObject(MUIC_Group
  376. #define RegisterObject    MUI_NewObject(MUIC_Register
  377. #define VirtgroupObject   MUI_NewObject(MUIC_Virtgroup
  378. #define ScrollgroupObject MUI_NewObject(MUIC_Scrollgroup
  379. #define PopstringObject   MUI_NewObject(MUIC_Popstring
  380. #define PopobjectObject   MUI_NewObject(MUIC_Popobject
  381. #define PopaslObject      MUI_NewObject(MUIC_Popasl
  382. #define ScrmodelistObject MUI_NewObject(MUIC_Scrmodelist
  383. #define VGroup            MUI_NewObject(MUIC_Group
  384. #define HGroup            MUI_NewObject(MUIC_Group,MUIA_Group_Horiz,TRUE
  385. #define ColGroup(cols)    MUI_NewObject(MUIC_Group,MUIA_Group_Columns,(cols)
  386. #define RowGroup(rows)    MUI_NewObject(MUIC_Group,MUIA_Group_Rows   ,(rows)
  387. #define PageGroup         MUI_NewObject(MUIC_Group,MUIA_Group_PageMode,TRUE
  388. #define VGroupV           MUI_NewObject(MUIC_Virtgroup
  389. #define HGroupV           MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Horiz,TRUE
  390. #define ColGroupV(cols)   MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Columns,(cols)
  391. #define RowGroupV(rows)   MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Rows   ,(rows)
  392. #define PageGroupV        MUI_NewObject(MUIC_Virtgroup,MUIA_Group_PageMode,TRUE
  393. #define RegisterGroup(t)  MUI_NewObject(MUIC_Register,MUIA_Register_Titles,(t)
  394. #define End               TAG_DONE)
  395.  
  396. #define Child             MUIA_Group_Child
  397. #define SubWindow         MUIA_Application_Window
  398. #define WindowContents    MUIA_Window_RootObject
  399.  
  400.  
  401.  
  402. /***************************************************************************
  403. **
  404. ** Frame Types
  405. ** -----------
  406. **
  407. ** These macros may be used to specify one of MUI's different frame types.
  408. ** Note that every macro consists of one { ti_Tag, ti_Data } pair.
  409. **
  410. ** GroupFrameT() is a special kind of frame that contains a centered
  411. ** title text.
  412. **
  413. ** HGroup, GroupFrameT("Horiz Groups"),
  414. **    Child, RectangleObject, TextFrame  , End,
  415. **    Child, RectangleObject, StringFrame, End,
  416. **    Child, RectangleObject, ButtonFrame, End,
  417. **    Child, RectangleObject, ListFrame  , End,
  418. **    End,
  419. **
  420. ***************************************************************************/
  421.  
  422. #define NoFrame          MUIA_Frame, MUIV_Frame_None
  423. #define ButtonFrame      MUIA_Frame, MUIV_Frame_Button
  424. #define ImageButtonFrame MUIA_Frame, MUIV_Frame_ImageButton
  425. #define TextFrame        MUIA_Frame, MUIV_Frame_Text
  426. #define StringFrame      MUIA_Frame, MUIV_Frame_String
  427. #define ReadListFrame    MUIA_Frame, MUIV_Frame_ReadList
  428. #define InputListFrame   MUIA_Frame, MUIV_Frame_InputList
  429. #define PropFrame        MUIA_Frame, MUIV_Frame_Prop
  430. #define SliderFrame      MUIA_Frame, MUIV_Frame_Slider
  431. #define GaugeFrame       MUIA_Frame, MUIV_Frame_Gauge
  432. #define VirtualFrame     MUIA_Frame, MUIV_Frame_Virtual
  433. #define GroupFrame       MUIA_Frame, MUIV_Frame_Group
  434. #define GroupFrameT(s)   MUIA_Frame, MUIV_Frame_Group, MUIA_FrameTitle, s
  435.  
  436.  
  437.  
  438. /***************************************************************************
  439. **
  440. ** Spacing Macros
  441. ** --------------
  442. **
  443. ***************************************************************************/
  444.  
  445. #define HVSpace           MUI_NewObject(MUIC_Rectangle,TAG_DONE)
  446. #define HSpace(x)         MUI_NewObject(MUIC_Rectangle,(x) ? MUIA_FixWidth  : TAG_IGNORE,(x), MUIA_VertWeight , 0, TAG_DONE)
  447. #define VSpace(x)         MUI_NewObject(MUIC_Rectangle,(x) ? MUIA_FixHeight : TAG_IGNORE,(x), MUIA_HorizWeight, 0, TAG_DONE)
  448. #define HCenter(obj)      (HGroup, GroupSpacing(0), Child, HSpace(0), Child, (obj), Child, HSpace(0), End)
  449. #define VCenter(obj)      (VGroup, GroupSpacing(0), Child, VSpace(0), Child, (obj), Child, VSpace(0), End)
  450. #define InnerSpacing(h,v) MUIA_InnerLeft,(h),MUIA_InnerRight,(h),MUIA_InnerTop,(v),MUIA_InnerBottom,(v)
  451. #define GroupSpacing(x)   MUIA_Group_Spacing,x
  452.  
  453.  
  454.  
  455. /***************************************************************************
  456. **
  457. ** String-Object
  458. ** -------------
  459. **
  460. ** The following macro creates a simple string gadget.
  461. **
  462. ***************************************************************************/
  463.  
  464. #define String(contents,maxlen)\
  465.     StringObject,\
  466.         StringFrame,\
  467.         MUIA_String_MaxLen  , maxlen,\
  468.         MUIA_String_Contents, contents,\
  469.         End
  470.  
  471. #define KeyString(contents,maxlen,controlchar)\
  472.     StringObject,\
  473.         StringFrame,\
  474.         MUIA_ControlChar    , controlchar,\
  475.         MUIA_String_MaxLen  , maxlen,\
  476.         MUIA_String_Contents, contents,\
  477.         End
  478.  
  479.  
  480.  
  481. /***************************************************************************
  482. **
  483. ** CheckMark-Object
  484. ** ----------------
  485. **
  486. ** The following macro creates a checkmark gadget.
  487. **
  488. ***************************************************************************/
  489.  
  490. #define CheckMark(selected)\
  491.     ImageObject,\
  492.         ImageButtonFrame,\
  493.         MUIA_InputMode        , MUIV_InputMode_Toggle,\
  494.         MUIA_Image_Spec       , MUII_CheckMark,\
  495.         MUIA_Image_FreeVert   , TRUE,\
  496.         MUIA_Selected         , selected,\
  497.         MUIA_Background       , MUII_ButtonBack,\
  498.         MUIA_ShowSelState     , FALSE,\
  499.         End
  500.  
  501. #define KeyCheckMark(selected,control)\
  502.     ImageObject,\
  503.         ImageButtonFrame,\
  504.         MUIA_InputMode        , MUIV_InputMode_Toggle,\
  505.         MUIA_Image_Spec       , MUII_CheckMark,\
  506.         MUIA_Image_FreeVert   , TRUE,\
  507.         MUIA_Selected         , selected,\
  508.         MUIA_Background       , MUII_ButtonBack,\
  509.         MUIA_ShowSelState     , FALSE,\
  510.         MUIA_ControlChar      , control,\
  511.         End
  512.  
  513.  
  514.  
  515. /***************************************************************************
  516. **
  517. ** Button-Objects
  518. ** --------------
  519. **
  520. ** Note: Use small letters for KeyButtons, e.g.
  521. **       KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  522. **
  523. ***************************************************************************/
  524.  
  525. #define SimpleButton(name)\
  526.     TextObject,\
  527.         ButtonFrame,\
  528.         MUIA_Text_Contents, name,\
  529.         MUIA_Text_PreParse, "\33c",\
  530.         MUIA_InputMode    , MUIV_InputMode_RelVerify,\
  531.         MUIA_Background   , MUII_ButtonBack,\
  532.         End
  533.  
  534. #define KeyButton(name,key)\
  535.     TextObject,\
  536.         ButtonFrame,\
  537.         MUIA_Text_Contents, name,\
  538.         MUIA_Text_PreParse, "\33c",\
  539.         MUIA_Text_HiChar  , key,\
  540.         MUIA_ControlChar  , key,\
  541.         MUIA_InputMode    , MUIV_InputMode_RelVerify,\
  542.         MUIA_Background   , MUII_ButtonBack,\
  543.         End
  544.  
  545.  
  546.  
  547. /***************************************************************************
  548. **
  549. ** Cycle-Object
  550. ** ------------
  551. **
  552. ***************************************************************************/
  553.  
  554. #define Cycle(entries)        CycleObject, MUIA_Cycle_Entries, entries, End
  555. #define KeyCycle(entries,key) CycleObject, MUIA_Cycle_Entries, entries, MUIA_ControlChar, key, End
  556.  
  557.  
  558.  
  559. /***************************************************************************
  560. **
  561. ** Radio-Object
  562. ** ------------
  563. **
  564. ***************************************************************************/
  565.  
  566. #define Radio(name,array)\
  567.     RadioObject,\
  568.         GroupFrameT(name),\
  569.         MUIA_Radio_Entries,array,\
  570.         End
  571.  
  572. #define KeyRadio(name,array,key)\
  573.     RadioObject,\
  574.         GroupFrameT(name),\
  575.         MUIA_Radio_Entries,array,\
  576.         MUIA_ControlChar, key,\
  577.         End
  578.  
  579.  
  580.  
  581. /***************************************************************************
  582. **
  583. ** Slider-Object
  584. ** -------------
  585. **
  586. ***************************************************************************/
  587.  
  588.  
  589. #define Slider(min,max,level)\
  590.     SliderObject,\
  591.         MUIA_Slider_Min  , min,\
  592.         MUIA_Slider_Max  , max,\
  593.         MUIA_Slider_Level, level,\
  594.         End
  595.  
  596. #define KeySlider(min,max,level,key)\
  597.     SliderObject,\
  598.         MUIA_Slider_Min  , min,\
  599.         MUIA_Slider_Max  , max,\
  600.         MUIA_Slider_Level, level,\
  601.         MUIA_ControlChar , key,\
  602.         End
  603.  
  604.  
  605.  
  606. /***************************************************************************
  607. **
  608. ** Button to be used for popup objects
  609. **
  610. ***************************************************************************/
  611.  
  612. #define PopButton(img) ImageObject,\
  613.     ImageButtonFrame,\
  614.     MUIA_Image_Spec          , img,\
  615.     MUIA_Image_FontMatchWidth, TRUE,\
  616.     MUIA_Image_FreeVert      , TRUE,\
  617.     MUIA_InputMode           , MUIV_InputMode_RelVerify,\
  618.     MUIA_Background          , MUII_BACKGROUND,\
  619.     End
  620.  
  621.  
  622.  
  623. /***************************************************************************
  624. **
  625. ** Labeling Objects
  626. ** ----------------
  627. **
  628. ** Labeling objects, e.g. a group of string gadgets,
  629. **
  630. **   Small: |foo   |
  631. **  Normal: |bar   |
  632. **     Big: |foobar|
  633. **    Huge: |barfoo|
  634. **
  635. ** is done using a 2 column group:
  636. **
  637. ** ColGroup(2),
  638. **     Child, Label2("Small:" ),
  639. **    Child, StringObject, End,
  640. **     Child, Label2("Normal:"),
  641. **    Child, StringObject, End,
  642. **     Child, Label2("Big:"   ),
  643. **    Child, StringObject, End,
  644. **     Child, Label2("Huge:"  ),
  645. **    Child, StringObject, End,
  646. **    End,
  647. **
  648. ** Note that we have three versions of the label macro, depending on
  649. ** the frame type of the right hand object:
  650. **
  651. ** Label1(): For use with standard frames (e.g. checkmarks).
  652. ** Label2(): For use with double high frames (e.g. string gadgets).
  653. ** Label() : For use with objects without a frame.
  654. **
  655. ** These macros ensure that your label will look fine even if the
  656. ** user of your application configured some strange spacing values.
  657. ** If you want to use your own labeling, you'll have to pay attention
  658. ** on this topic yourself.
  659. **
  660. ***************************************************************************/
  661.  
  662. #define Label(label)   TextObject, MUIA_Text_PreParse, "\33r", MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, End
  663. #define Label1(label)  TextObject, MUIA_Text_PreParse, "\33r", MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, ButtonFrame, MUIA_FramePhantomHoriz, TRUE, End
  664. #define Label2(label)  TextObject, MUIA_Text_PreParse, "\33r", MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, StringFrame, MUIA_FramePhantomHoriz, TRUE, End
  665. #define LLabel(label)  TextObject, MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, End
  666. #define LLabel1(label) TextObject, MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, ButtonFrame, MUIA_FramePhantomHoriz, TRUE, End
  667. #define LLabel2(label) TextObject, MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, StringFrame, MUIA_FramePhantomHoriz, TRUE, End
  668.  
  669. #define KeyLabel(label,hichar)   TextObject, MUIA_Text_PreParse, "\33r", MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, MUIA_Text_HiChar, hichar, End
  670. #define KeyLabel1(label,hichar)  TextObject, MUIA_Text_PreParse, "\33r", MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, MUIA_Text_HiChar, hichar, ButtonFrame, MUIA_FramePhantomHoriz, TRUE, End
  671. #define KeyLabel2(label,hichar)  TextObject, MUIA_Text_PreParse, "\33r", MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, MUIA_Text_HiChar, hichar, StringFrame, MUIA_FramePhantomHoriz, TRUE, End
  672. #define KeyLLabel(label,hichar)  TextObject, MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, MUIA_Text_HiChar, hichar, End
  673. #define KeyLLabel1(label,hichar) TextObject, MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, MUIA_Text_HiChar, hichar, ButtonFrame, MUIA_FramePhantomHoriz, TRUE, End
  674. #define KeyLLabel2(label,hichar) TextObject, MUIA_Text_Contents, label, MUIA_Weight, 0, MUIA_InnerLeft, 0, MUIA_InnerRight, 0, MUIA_Text_HiChar, hichar, StringFrame, MUIA_FramePhantomHoriz, TRUE, End
  675.  
  676.  
  677.  
  678. /***************************************************************************
  679. **
  680. ** Controlling Objects
  681. ** -------------------
  682. **
  683. ** set() and get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
  684. ** calls:
  685. **
  686. ** {
  687. **    char *x;
  688. **
  689. **    set(obj,MUIA_String_Contents,"foobar");
  690. **    get(obj,MUIA_String_Contents,&x);
  691. **
  692. **    printf("gadget contains '%s'\n",x);
  693. ** }
  694. **
  695. ** nnset() sets an attribute without triggering a possible notification.
  696. **
  697. ***************************************************************************/
  698.  
  699. #define get(obj,attr,store) GetAttr(attr,obj,(ULONG *)store)
  700. #define set(obj,attr,value) SetAttrs(obj,attr,value,TAG_DONE)
  701. #define nnset(obj,attr,value) SetAttrs(obj,MUIA_NoNotify,TRUE,attr,value,TAG_DONE)
  702.  
  703. #define setmutex(obj,n)     set(obj,MUIA_Radio_Active,n)
  704. #define setcycle(obj,n)     set(obj,MUIA_Cycle_Active,n)
  705. #define setstring(obj,s)    set(obj,MUIA_String_Contents,s)
  706. #define setcheckmark(obj,b) set(obj,MUIA_Selected,b)
  707. #define setslider(obj,l)    set(obj,MUIA_Slider_Level,l)
  708.  
  709. #endif /* MUI_NOSHORTCUTS */
  710.  
  711.  
  712. /***************************************************************************
  713. **
  714. ** For Boopsi Image Implementors Only:
  715. **
  716. ** If MUI is using a boopsi image object, it will send a special method
  717. ** immediately after object creation. This method has a parameter structure
  718. ** where the boopsi can fill in its minimum and maximum size and learn if
  719. ** its used in a horizontal or vertical context.
  720. **
  721. ** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
  722. ** value. That's how MUI sees that the method is implemented.
  723. **
  724. ** Note: MUI does not depend on this method. If the boopsi image doesn't
  725. **       implement it, minimum size will be 0 and maximum size unlimited.
  726. **
  727. ***************************************************************************/
  728.  
  729. #define MUIM_BoopsiQuery 0x80427157 /* this is send to the boopsi and */
  730.                                     /* must be used as return value   */
  731.  
  732. struct MUI_BoopsiQuery              /* parameter structure */
  733. {
  734.     ULONG mbq_MethodID;              /* always MUIM_BoopsiQuery */
  735.  
  736.     struct Screen *mbq_Screen;       /* obsolete, use mbq_RenderInfo */
  737.     ULONG mbq_Flags;                 /* read only, see below */
  738.  
  739.     LONG mbq_MinWidth ;              /* write only, fill in min width  */
  740.     LONG mbq_MinHeight;              /* write only, fill in min height */
  741.     LONG mbq_MaxWidth ;              /* write only, fill in max width  */
  742.     LONG mbq_MaxHeight;              /* write only, fill in max height */
  743.     LONG mbq_DefWidth ;              /* write only, fill in def width  */
  744.     LONG mbq_DefHeight;              /* write only, fill in def height */
  745.  
  746.     struct MUI_RenderInfo *mbq_RenderInfo;  /* read only, display context */
  747.  
  748.     /* may grow in future ... */
  749. };
  750.  
  751. #define MUIP_BoopsiQuery MUI_BoopsiQuery  /* old structure name */
  752.  
  753. #define MBQF_HORIZ (1<<0)           /* object used in a horizontal */
  754.                                     /* context (else vertical)     */
  755.  
  756. #define MBQ_MUI_MAXMAX (10000)          /* use this for unlimited MaxWidth/Height */
  757.  
  758.  
  759. /****************************************************************************/
  760. /** Notify.mui 7.13 (01.12.93)                                             **/
  761. /****************************************************************************/
  762.  
  763. #ifdef _DCC
  764. extern char MUIC_Notify[];
  765. #else
  766. #define MUIC_Notify "Notify.mui"
  767. #endif
  768.  
  769. /* Methods */
  770.  
  771. #define MUIM_CallHook                  0x8042b96b
  772. #define MUIM_KillNotify                0x8042d240
  773. #define MUIM_MultiSet                  0x8042d356
  774. #define MUIM_Notify                    0x8042c9cb
  775. #define MUIM_Set                       0x8042549a
  776. #define MUIM_SetAsString               0x80422590
  777. #define MUIM_WriteLong                 0x80428d86
  778. #define MUIM_WriteString               0x80424bf4
  779. struct  MUIP_CallHook                  { ULONG id; struct Hook *Hook; ULONG param1; /* ... */ };
  780. struct  MUIP_KillNotify                { ULONG id; ULONG TrigAttr; };
  781. struct  MUIP_MultiSet                  { ULONG id; ULONG attr; ULONG val; APTR obj; /* ... */ };
  782. struct  MUIP_Notify                    { ULONG id; ULONG TrigAttr; ULONG TrigVal; APTR DestObj; ULONG FollowParams; /* ... */ };
  783. struct  MUIP_Set                       { ULONG id; ULONG attr; ULONG val; };
  784. struct  MUIP_SetAsString               { ULONG id; ULONG attr; char *format; ULONG val; /* ... */ };
  785. struct  MUIP_WriteLong                 { ULONG id; ULONG val; ULONG *memory; };
  786. struct  MUIP_WriteString               { ULONG id; char *str; char *memory; };
  787.  
  788. /* Attributes */
  789.  
  790. #define MUIA_AppMessage                 0x80421955 /* ..g struct AppMessage * */
  791. #define MUIA_HelpFile                   0x80423a6e /* isg STRPTR            */
  792. #define MUIA_HelpLine                   0x8042a825 /* isg LONG              */
  793. #define MUIA_HelpNode                   0x80420b85 /* isg STRPTR            */
  794. #define MUIA_NoNotify                   0x804237f9 /* .s. BOOL              */
  795. #define MUIA_Revision                   0x80427eaa /* ..g LONG              */
  796. #define MUIA_UserData                   0x80420313 /* isg ULONG             */
  797. #define MUIA_Version                    0x80422301 /* ..g LONG              */
  798.  
  799.  
  800.  
  801. /****************************************************************************/
  802. /** Application.mui 7.12 (28.11.93)                                        **/
  803. /****************************************************************************/
  804.  
  805. #ifdef _DCC
  806. extern char MUIC_Application[];
  807. #else
  808. #define MUIC_Application "Application.mui"
  809. #endif
  810.  
  811. /* Methods */
  812.  
  813. #define MUIM_Application_GetMenuCheck  0x8042c0a7
  814. #define MUIM_Application_GetMenuState  0x8042a58f
  815. #define MUIM_Application_Input         0x8042d0f5
  816. #define MUIM_Application_InputBuffered 0x80427e59
  817. #define MUIM_Application_Load          0x8042f90d
  818. #define MUIM_Application_PushMethod    0x80429ef8
  819. #define MUIM_Application_ReturnID      0x804276ef
  820. #define MUIM_Application_Save          0x804227ef
  821. #define MUIM_Application_SetMenuCheck  0x8042a707
  822. #define MUIM_Application_SetMenuState  0x80428bef
  823. #define MUIM_Application_ShowHelp      0x80426479
  824. struct  MUIP_Application_GetMenuCheck  { ULONG id; ULONG MenuID; };
  825. struct  MUIP_Application_GetMenuState  { ULONG id; ULONG MenuID; };
  826. struct  MUIP_Application_Input         { ULONG id; LONGBITS *signal; };
  827. struct  MUIP_Application_Load          { ULONG id; STRPTR name; };
  828. struct  MUIP_Application_PushMethod    { ULONG id; Object *dest; LONG count; /* ... */ };
  829. struct  MUIP_Application_ReturnID      { ULONG id; ULONG retid; };
  830. struct  MUIP_Application_Save          { ULONG id; STRPTR name; };
  831. struct  MUIP_Application_SetMenuCheck  { ULONG id; ULONG MenuID; LONG stat; };
  832. struct  MUIP_Application_SetMenuState  { ULONG id; ULONG MenuID; LONG stat; };
  833. struct  MUIP_Application_ShowHelp      { ULONG id; Object *window; char *name; char *node; LONG line; };
  834.  
  835. /* Attributes */
  836.  
  837. #define MUIA_Application_Active         0x804260ab /* isg BOOL              */
  838. #define MUIA_Application_Author         0x80424842 /* i.g STRPTR            */
  839. #define MUIA_Application_Base           0x8042e07a /* i.g STRPTR            */
  840. #define MUIA_Application_Broker         0x8042dbce /* ..g Broker *          */
  841. #define MUIA_Application_BrokerHook     0x80428f4b /* isg struct Hook *     */
  842. #define MUIA_Application_BrokerPort     0x8042e0ad /* ..g struct MsgPort *  */
  843. #define MUIA_Application_BrokerPri      0x8042c8d0 /* i.g LONG              */
  844. #define MUIA_Application_Commands       0x80428648 /* isg struct MUI_Command * */
  845. #define MUIA_Application_Copyright      0x8042ef4d /* i.g STRPTR            */
  846. #define MUIA_Application_Description    0x80421fc6 /* i.g STRPTR            */
  847. #define MUIA_Application_DiskObject     0x804235cb /* isg struct DiskObject * */
  848. #define MUIA_Application_DoubleStart    0x80423bc6 /* ..g BOOL              */
  849. #define MUIA_Application_DropObject     0x80421266 /* is. Object *          */
  850. #define MUIA_Application_Iconified      0x8042a07f /* .sg BOOL              */
  851. #define MUIA_Application_Menu           0x80420e1f /* i.g struct NewMenu *  */
  852. #define MUIA_Application_MenuAction     0x80428961 /* ..g ULONG             */
  853. #define MUIA_Application_MenuHelp       0x8042540b /* ..g ULONG             */
  854. #define MUIA_Application_RexxHook       0x80427c42 /* isg struct Hook *     */
  855. #define MUIA_Application_RexxMsg        0x8042fd88 /* ..g struct RxMsg *    */
  856. #define MUIA_Application_RexxString     0x8042d711 /* .s. STRPTR            */
  857. #define MUIA_Application_SingleTask     0x8042a2c8 /* i.. BOOL              */
  858. #define MUIA_Application_Sleep          0x80425711 /* .s. BOOL              */
  859. #define MUIA_Application_Title          0x804281b8 /* i.g STRPTR            */
  860. #define MUIA_Application_Version        0x8042b33f /* i.g STRPTR            */
  861. #define MUIA_Application_Window         0x8042bfe0 /* i.. Object *          */
  862.  
  863.  
  864.  
  865. /****************************************************************************/
  866. /** Window.mui 7.16 (03.12.93)                                             **/
  867. /****************************************************************************/
  868.  
  869. #ifdef _DCC
  870. extern char MUIC_Window[];
  871. #else
  872. #define MUIC_Window "Window.mui"
  873. #endif
  874.  
  875. /* Methods */
  876.  
  877. #define MUIM_Window_GetMenuCheck       0x80420414
  878. #define MUIM_Window_GetMenuState       0x80420d2f
  879. #define MUIM_Window_ScreenToBack       0x8042913d
  880. #define MUIM_Window_ScreenToFront      0x804227a4
  881. #define MUIM_Window_SetCycleChain      0x80426510
  882. #define MUIM_Window_SetMenuCheck       0x80422243
  883. #define MUIM_Window_SetMenuState       0x80422b5e
  884. #define MUIM_Window_ToBack             0x8042152e
  885. #define MUIM_Window_ToFront            0x8042554f
  886. struct  MUIP_Window_GetMenuCheck       { ULONG id; ULONG MenuID; };
  887. struct  MUIP_Window_GetMenuState       { ULONG id; ULONG MenuID; };
  888. struct  MUIP_Window_SetCycleChain      { ULONG id; APTR o1; /* ;o2;...;NULL */ };
  889. struct  MUIP_Window_SetMenuCheck       { ULONG id; ULONG MenuID; LONG stat; };
  890. struct  MUIP_Window_SetMenuState       { ULONG id; ULONG MenuID; LONG stat; };
  891.  
  892. /* Attributes */
  893.  
  894. #define MUIA_Window_Activate            0x80428d2f /* isg BOOL              */
  895. #define MUIA_Window_ActiveObject        0x80427925 /* .sg Object *          */
  896. #define MUIA_Window_AltHeight           0x8042cce3 /* i.g LONG              */
  897. #define MUIA_Window_AltLeftEdge         0x80422d65 /* i.g LONG              */
  898. #define MUIA_Window_AltTopEdge          0x8042e99b /* i.g LONG              */
  899. #define MUIA_Window_AltWidth            0x804260f4 /* i.g LONG              */
  900. #define MUIA_Window_AppWindow           0x804280cf /* i.. BOOL              */
  901. #define MUIA_Window_Backdrop            0x8042c0bb /* i.. BOOL              */
  902. #define MUIA_Window_Borderless          0x80429b79 /* i.. BOOL              */
  903. #define MUIA_Window_CloseGadget         0x8042a110 /* i.. BOOL              */
  904. #define MUIA_Window_CloseRequest        0x8042e86e /* ..g BOOL              */
  905. #define MUIA_Window_DefaultObject       0x804294d7 /* isg Object *          */
  906. #define MUIA_Window_DepthGadget         0x80421923 /* i.. BOOL              */
  907. #define MUIA_Window_DragBar             0x8042045d /* i.. BOOL              */
  908. #define MUIA_Window_Height              0x80425846 /* i.g LONG              */
  909. #define MUIA_Window_ID                  0x804201bd /* isg ULONG             */
  910. #define MUIA_Window_InputEvent          0x804247d8 /* ..g struct InputEvent * */
  911. #define MUIA_Window_LeftEdge            0x80426c65 /* i.g LONG              */
  912. #define MUIA_Window_Menu                0x8042db94 /* i.. struct NewMenu *  */
  913. #define MUIA_Window_NoMenus             0x80429df5 /* .s. BOOL              */
  914. #define MUIA_Window_Open                0x80428aa0 /* .sg BOOL              */
  915. #define MUIA_Window_PublicScreen        0x804278e4 /* isg STRPTR            */
  916. #define MUIA_Window_RefWindow           0x804201f4 /* is. Object *          */
  917. #define MUIA_Window_RootObject          0x8042cba5 /* i.. Object *          */
  918. #define MUIA_Window_Screen              0x8042df4f /* isg struct Screen *   */
  919. #define MUIA_Window_ScreenTitle         0x804234b0 /* isg STRPTR            */
  920. #define MUIA_Window_SizeGadget          0x8042e33d /* i.. BOOL              */
  921. #define MUIA_Window_SizeRight           0x80424780 /* i.. BOOL              */
  922. #define MUIA_Window_Sleep               0x8042e7db /* .sg BOOL              */
  923. #define MUIA_Window_Title               0x8042ad3d /* isg STRPTR            */
  924. #define MUIA_Window_TopEdge             0x80427c66 /* i.g LONG              */
  925. #define MUIA_Window_Width               0x8042dcae /* i.g LONG              */
  926. #define MUIA_Window_Window              0x80426a42 /* ..g struct Window *   */
  927.  
  928. #define MUIV_Window_ActiveObject_None 0
  929. #define MUIV_Window_ActiveObject_Next -1
  930. #define MUIV_Window_ActiveObject_Prev -2
  931. #define MUIV_Window_AltHeight_MinMax(p) (0-(p))
  932. #define MUIV_Window_AltHeight_Visible(p) (-100-(p))
  933. #define MUIV_Window_AltHeight_Screen(p) (-200-(p))
  934. #define MUIV_Window_AltHeight_Scaled -1000
  935. #define MUIV_Window_AltLeftEdge_Centered -1
  936. #define MUIV_Window_AltLeftEdge_Moused -2
  937. #define MUIV_Window_AltLeftEdge_NoChange -1000
  938. #define MUIV_Window_AltTopEdge_Centered -1
  939. #define MUIV_Window_AltTopEdge_Moused -2
  940. #define MUIV_Window_AltTopEdge_Delta(p) (-3-(p))
  941. #define MUIV_Window_AltTopEdge_NoChange -1000
  942. #define MUIV_Window_AltWidth_MinMax(p) (0-(p))
  943. #define MUIV_Window_AltWidth_Visible(p) (-100-(p))
  944. #define MUIV_Window_AltWidth_Screen(p) (-200-(p))
  945. #define MUIV_Window_AltWidth_Scaled -1000
  946. #define MUIV_Window_Height_MinMax(p) (0-(p))
  947. #define MUIV_Window_Height_Visible(p) (-100-(p))
  948. #define MUIV_Window_Height_Screen(p) (-200-(p))
  949. #define MUIV_Window_Height_Scaled -1000
  950. #define MUIV_Window_Height_Default -1001
  951. #define MUIV_Window_LeftEdge_Centered -1
  952. #define MUIV_Window_LeftEdge_Moused -2
  953. #define MUIV_Window_Menu_NoMenu -1
  954. #define MUIV_Window_TopEdge_Centered -1
  955. #define MUIV_Window_TopEdge_Moused -2
  956. #define MUIV_Window_TopEdge_Delta(p) (-3-(p))
  957. #define MUIV_Window_Width_MinMax(p) (0-(p))
  958. #define MUIV_Window_Width_Visible(p) (-100-(p))
  959. #define MUIV_Window_Width_Screen(p) (-200-(p))
  960. #define MUIV_Window_Width_Scaled -1000
  961. #define MUIV_Window_Width_Default -1001
  962.  
  963.  
  964. /****************************************************************************/
  965. /** Area.mui 7.15 (28.11.93)                                               **/
  966. /****************************************************************************/
  967.  
  968. #ifdef _DCC
  969. extern char MUIC_Area[];
  970. #else
  971. #define MUIC_Area "Area.mui"
  972. #endif
  973.  
  974. /* Methods */
  975.  
  976. #define MUIM_AskMinMax                 0x80423874 /* Custom Class */
  977. #define MUIM_Cleanup                   0x8042d985 /* Custom Class */
  978. #define MUIM_Draw                      0x80426f3f /* Custom Class */
  979. #define MUIM_HandleInput               0x80422a1a /* Custom Class */
  980. #define MUIM_Hide                      0x8042f20f /* Custom Class */
  981. #define MUIM_Setup                     0x80428354 /* Custom Class */
  982. #define MUIM_Show                      0x8042cc84 /* Custom Class */
  983. struct  MUIP_AskMinMax                 { ULONG id; struct MUI_MinMax *MinMaxInfo; }; /* Custom Class */
  984. struct  MUIP_Draw                      { ULONG id; ULONG flags; }; /* Custom Class */
  985. struct  MUIP_HandleInput               { ULONG id; struct IntuiMessage *imsg; LONG muikey; }; /* Custom Class */
  986. struct  MUIP_Setup                     { ULONG id; struct MUI_RenderInfo *RenderInfo; }; /* Custom Class */
  987.  
  988. /* Attributes */
  989.  
  990. #define MUIA_ApplicationObject          0x8042d3ee /* ..g Object *          */
  991. #define MUIA_Background                 0x8042545b /* is. LONG              */
  992. #define MUIA_BottomEdge                 0x8042e552 /* ..g LONG              */
  993. #define MUIA_ControlChar                0x8042120b /* i.. char              */
  994. #define MUIA_Disabled                   0x80423661 /* isg BOOL              */
  995. #define MUIA_ExportID                   0x8042d76e /* isg LONG              */
  996. #define MUIA_FixHeight                  0x8042a92b /* i.. LONG              */
  997. #define MUIA_FixHeightTxt               0x804276f2 /* i.. LONG              */
  998. #define MUIA_FixWidth                   0x8042a3f1 /* i.. LONG              */
  999. #define MUIA_FixWidthTxt                0x8042d044 /* i.. STRPTR            */
  1000. #define MUIA_Font                       0x8042be50 /* i.g struct TextFont * */
  1001. #define MUIA_Frame                      0x8042ac64 /* i.. LONG              */
  1002. #define MUIA_FramePhantomHoriz          0x8042ed76 /* i.. BOOL              */
  1003. #define MUIA_FrameTitle                 0x8042d1c7 /* i.. STRPTR            */
  1004. #define MUIA_Height                     0x80423237 /* ..g LONG              */
  1005. #define MUIA_HorizWeight                0x80426db9 /* i.. LONG              */
  1006. #define MUIA_InnerBottom                0x8042f2c0 /* i.. LONG              */
  1007. #define MUIA_InnerLeft                  0x804228f8 /* i.. LONG              */
  1008. #define MUIA_InnerRight                 0x804297ff /* i.. LONG              */
  1009. #define MUIA_InnerTop                   0x80421eb6 /* i.. LONG              */
  1010. #define MUIA_InputMode                  0x8042fb04 /* i.. LONG              */
  1011. #define MUIA_LeftEdge                   0x8042bec6 /* ..g LONG              */
  1012. #define MUIA_Pressed                    0x80423535 /* ..g BOOL              */
  1013. #define MUIA_RightEdge                  0x8042ba82 /* ..g LONG              */
  1014. #define MUIA_Selected                   0x8042654b /* isg BOOL              */
  1015. #define MUIA_ShowMe                     0x80429ba8 /* isg BOOL              */
  1016. #define MUIA_ShowSelState               0x8042caac /* i.. BOOL              */
  1017. #define MUIA_Timer                      0x80426435 /* ..g LONG              */
  1018. #define MUIA_TopEdge                    0x8042509b /* ..g LONG              */
  1019. #define MUIA_VertWeight                 0x804298d0 /* i.. LONG              */
  1020. #define MUIA_Weight                     0x80421d1f /* i.. LONG              */
  1021. #define MUIA_Width                      0x8042b59c /* ..g LONG              */
  1022. #define MUIA_Window                     0x80421591 /* ..g struct Window *   */
  1023. #define MUIA_WindowObject               0x8042669e /* ..g Object *          */
  1024.  
  1025. #define MUIV_Font_Inherit 0
  1026. #define MUIV_Font_Normal -1
  1027. #define MUIV_Font_List -2
  1028. #define MUIV_Font_Tiny -3
  1029. #define MUIV_Font_Fixed -4
  1030. #define MUIV_Font_Title -5
  1031. #define MUIV_Frame_None 0
  1032. #define MUIV_Frame_Button 1
  1033. #define MUIV_Frame_ImageButton 2
  1034. #define MUIV_Frame_Text 3
  1035. #define MUIV_Frame_String 4
  1036. #define MUIV_Frame_ReadList 5
  1037. #define MUIV_Frame_InputList 6
  1038. #define MUIV_Frame_Prop 7
  1039. #define MUIV_Frame_Gauge 8
  1040. #define MUIV_Frame_Group 9
  1041. #define MUIV_Frame_PopUp 10
  1042. #define MUIV_Frame_Virtual 11
  1043. #define MUIV_Frame_Slider 12
  1044. #define MUIV_Frame_Count 13
  1045. #define MUIV_InputMode_None 0
  1046. #define MUIV_InputMode_RelVerify 1
  1047. #define MUIV_InputMode_Immediate 2
  1048. #define MUIV_InputMode_Toggle 3
  1049.  
  1050.  
  1051. /****************************************************************************/
  1052. /** Rectangle.mui 7.14 (28.11.93)                                          **/
  1053. /****************************************************************************/
  1054.  
  1055. #ifdef _DCC
  1056. extern char MUIC_Rectangle[];
  1057. #else
  1058. #define MUIC_Rectangle "Rectangle.mui"
  1059. #endif
  1060.  
  1061. /* Attributes */
  1062.  
  1063. #define MUIA_Rectangle_HBar             0x8042c943 /* i.g BOOL              */
  1064. #define MUIA_Rectangle_VBar             0x80422204 /* i.g BOOL              */
  1065.  
  1066.  
  1067.  
  1068. /****************************************************************************/
  1069. /** Image.mui 7.13 (28.11.93)                                              **/
  1070. /****************************************************************************/
  1071.  
  1072. #ifdef _DCC
  1073. extern char MUIC_Image[];
  1074. #else
  1075. #define MUIC_Image "Image.mui"
  1076. #endif
  1077.  
  1078. /* Attributes */
  1079.  
  1080. #define MUIA_Image_FontMatch            0x8042815d /* i.. BOOL              */
  1081. #define MUIA_Image_FontMatchHeight      0x80429f26 /* i.. BOOL              */
  1082. #define MUIA_Image_FontMatchWidth       0x804239bf /* i.. BOOL              */
  1083. #define MUIA_Image_FreeHoriz            0x8042da84 /* i.. BOOL              */
  1084. #define MUIA_Image_FreeVert             0x8042ea28 /* i.. BOOL              */
  1085. #define MUIA_Image_OldImage             0x80424f3d /* i.. struct Image *    */
  1086. #define MUIA_Image_Spec                 0x804233d5 /* i.. char *            */
  1087. #define MUIA_Image_State                0x8042a3ad /* is. LONG              */
  1088.  
  1089.  
  1090.  
  1091. /****************************************************************************/
  1092. /** Text.mui 7.15 (28.11.93)                                               **/
  1093. /****************************************************************************/
  1094.  
  1095. #ifdef _DCC
  1096. extern char MUIC_Text[];
  1097. #else
  1098. #define MUIC_Text "Text.mui"
  1099. #endif
  1100.  
  1101. /* Attributes */
  1102.  
  1103. #define MUIA_Text_Contents              0x8042f8dc /* isg STRPTR            */
  1104. #define MUIA_Text_HiChar                0x804218ff /* i.. char              */
  1105. #define MUIA_Text_PreParse              0x8042566d /* isg STRPTR            */
  1106. #define MUIA_Text_SetMax                0x80424d0a /* i.. BOOL              */
  1107. #define MUIA_Text_SetMin                0x80424e10 /* i.. BOOL              */
  1108.  
  1109.  
  1110.  
  1111. /****************************************************************************/
  1112. /** String.mui 7.13 (28.11.93)                                             **/
  1113. /****************************************************************************/
  1114.  
  1115. #ifdef _DCC
  1116. extern char MUIC_String[];
  1117. #else
  1118. #define MUIC_String "String.mui"
  1119. #endif
  1120.  
  1121. /* Attributes */
  1122.  
  1123. #define MUIA_String_Accept              0x8042e3e1 /* isg STRPTR            */
  1124. #define MUIA_String_Acknowledge         0x8042026c /* ..g STRPTR            */
  1125. #define MUIA_String_AttachedList        0x80420fd2 /* i.. Object *          */
  1126. #define MUIA_String_BufferPos           0x80428b6c /* .sg LONG              */
  1127. #define MUIA_String_Contents            0x80428ffd /* isg STRPTR            */
  1128. #define MUIA_String_DisplayPos          0x8042ccbf /* .sg LONG              */
  1129. #define MUIA_String_EditHook            0x80424c33 /* isg struct Hook *     */
  1130. #define MUIA_String_Format              0x80427484 /* i.g LONG              */
  1131. #define MUIA_String_Integer             0x80426e8a /* isg ULONG             */
  1132. #define MUIA_String_MaxLen              0x80424984 /* i.. LONG              */
  1133. #define MUIA_String_Reject              0x8042179c /* isg STRPTR            */
  1134. #define MUIA_String_Secret              0x80428769 /* i.g BOOL              */
  1135.  
  1136. #define MUIV_String_Format_Left 0
  1137. #define MUIV_String_Format_Center 1
  1138. #define MUIV_String_Format_Right 2
  1139.  
  1140.  
  1141. /****************************************************************************/
  1142. /** Prop.mui 7.12 (28.11.93)                                               **/
  1143. /****************************************************************************/
  1144.  
  1145. #ifdef _DCC
  1146. extern char MUIC_Prop[];
  1147. #else
  1148. #define MUIC_Prop "Prop.mui"
  1149. #endif
  1150.  
  1151. /* Attributes */
  1152.  
  1153. #define MUIA_Prop_Entries               0x8042fbdb /* isg LONG              */
  1154. #define MUIA_Prop_First                 0x8042d4b2 /* isg LONG              */
  1155. #define MUIA_Prop_Horiz                 0x8042f4f3 /* i.g BOOL              */
  1156. #define MUIA_Prop_Slider                0x80429c3a /* isg BOOL              */
  1157. #define MUIA_Prop_Visible               0x8042fea6 /* isg LONG              */
  1158.  
  1159.  
  1160.  
  1161. /****************************************************************************/
  1162. /** Gauge.mui 7.41 (10.02.94)                                              **/
  1163. /****************************************************************************/
  1164.  
  1165. #ifdef _DCC
  1166. extern char MUIC_Gauge[];
  1167. #else
  1168. #define MUIC_Gauge "Gauge.mui"
  1169. #endif
  1170.  
  1171. /* Attributes */
  1172.  
  1173. #define MUIA_Gauge_Current              0x8042f0dd /* isg LONG              */
  1174. #define MUIA_Gauge_Divide               0x8042d8df /* isg BOOL              */
  1175. #define MUIA_Gauge_Horiz                0x804232dd /* i.. BOOL              */
  1176. #define MUIA_Gauge_InfoText             0x8042bf15 /* isg char *            */
  1177. #define MUIA_Gauge_Max                  0x8042bcdb /* isg LONG              */
  1178.  
  1179.  
  1180.  
  1181. /****************************************************************************/
  1182. /** Scale.mui 7.37 (10.02.94)                                              **/
  1183. /****************************************************************************/
  1184.  
  1185. #ifdef _DCC
  1186. extern char MUIC_Scale[];
  1187. #else
  1188. #define MUIC_Scale "Scale.mui"
  1189. #endif
  1190.  
  1191. /* Attributes */
  1192.  
  1193. #define MUIA_Scale_Horiz                0x8042919a /* isg BOOL              */
  1194.  
  1195.  
  1196.  
  1197. /****************************************************************************/
  1198. /** Boopsi.mui 7.36 (10.02.94)                                             **/
  1199. /****************************************************************************/
  1200.  
  1201. #ifdef _DCC
  1202. extern char MUIC_Boopsi[];
  1203. #else
  1204. #define MUIC_Boopsi "Boopsi.mui"
  1205. #endif
  1206.  
  1207. /* Attributes */
  1208.  
  1209. #define MUIA_Boopsi_Class               0x80426999 /* isg struct IClass *   */
  1210. #define MUIA_Boopsi_ClassID             0x8042bfa3 /* isg char *            */
  1211. #define MUIA_Boopsi_MaxHeight           0x8042757f /* isg ULONG             */
  1212. #define MUIA_Boopsi_MaxWidth            0x8042bcb1 /* isg ULONG             */
  1213. #define MUIA_Boopsi_MinHeight           0x80422c93 /* isg ULONG             */
  1214. #define MUIA_Boopsi_MinWidth            0x80428fb2 /* isg ULONG             */
  1215. #define MUIA_Boopsi_Object              0x80420178 /* ..g Object *          */
  1216. #define MUIA_Boopsi_Remember            0x8042f4bd /* i.. ULONG             */
  1217. #define MUIA_Boopsi_TagDrawInfo         0x8042bae7 /* isg ULONG             */
  1218. #define MUIA_Boopsi_TagScreen           0x8042bc71 /* isg ULONG             */
  1219. #define MUIA_Boopsi_TagWindow           0x8042e11d /* isg ULONG             */
  1220.  
  1221.  
  1222.  
  1223. /****************************************************************************/
  1224. /** Colorfield.mui 7.38 (10.02.94)                                         **/
  1225. /****************************************************************************/
  1226.  
  1227. #ifdef _DCC
  1228. extern char MUIC_Colorfield[];
  1229. #else
  1230. #define MUIC_Colorfield "Colorfield.mui"
  1231. #endif
  1232.  
  1233. /* Attributes */
  1234.  
  1235. #define MUIA_Colorfield_Blue            0x8042d3b0 /* isg ULONG             */
  1236. #define MUIA_Colorfield_Green           0x80424466 /* isg ULONG             */
  1237. #define MUIA_Colorfield_Pen             0x8042713a /* ..g ULONG             */
  1238. #define MUIA_Colorfield_Red             0x804279f6 /* isg ULONG             */
  1239. #define MUIA_Colorfield_RGB             0x8042677a /* isg ULONG *           */
  1240.  
  1241.  
  1242.  
  1243. /****************************************************************************/
  1244. /** List.mui 7.22 (28.11.93)                                               **/
  1245. /****************************************************************************/
  1246.  
  1247. #ifdef _DCC
  1248. extern char MUIC_List[];
  1249. #else
  1250. #define MUIC_List "List.mui"
  1251. #endif
  1252.  
  1253. /* Methods */
  1254.  
  1255. #define MUIM_List_Clear                0x8042ad89
  1256. #define MUIM_List_Exchange             0x8042468c
  1257. #define MUIM_List_GetEntry             0x804280ec
  1258. #define MUIM_List_Insert               0x80426c87
  1259. #define MUIM_List_InsertSingle         0x804254d5
  1260. #define MUIM_List_Jump                 0x8042baab
  1261. #define MUIM_List_NextSelected         0x80425f17
  1262. #define MUIM_List_Redraw               0x80427993
  1263. #define MUIM_List_Remove               0x8042647e
  1264. #define MUIM_List_Select               0x804252d8
  1265. #define MUIM_List_Sort                 0x80422275
  1266. struct  MUIP_List_Exchange             { ULONG id; LONG pos1; LONG pos2; };
  1267. struct  MUIP_List_GetEntry             { ULONG id; LONG pos; APTR *entry; };
  1268. struct  MUIP_List_Insert               { ULONG id; APTR *entries; LONG count; LONG pos; };
  1269. struct  MUIP_List_InsertSingle         { ULONG id; APTR entry; LONG pos; };
  1270. struct  MUIP_List_Jump                 { ULONG id; LONG pos; };
  1271. struct  MUIP_List_NextSelected         { ULONG id; LONG *pos; };
  1272. struct  MUIP_List_Redraw               { ULONG id; LONG pos; };
  1273. struct  MUIP_List_Remove               { ULONG id; LONG pos; };
  1274. struct  MUIP_List_Select               { ULONG id; LONG pos; LONG seltype; LONG *state; };
  1275.  
  1276. /* Attributes */
  1277.  
  1278. #define MUIA_List_Active                0x8042391c /* isg LONG              */
  1279. #define MUIA_List_AdjustHeight          0x8042850d /* i.. BOOL              */
  1280. #define MUIA_List_AdjustWidth           0x8042354a /* i.. BOOL              */
  1281. #define MUIA_List_CompareHook           0x80425c14 /* is. struct Hook *     */
  1282. #define MUIA_List_ConstructHook         0x8042894f /* is. struct Hook *     */
  1283. #define MUIA_List_DestructHook          0x804297ce /* is. struct Hook *     */
  1284. #define MUIA_List_DisplayHook           0x8042b4d5 /* is. struct Hook *     */
  1285. #define MUIA_List_Entries               0x80421654 /* ..g LONG              */
  1286. #define MUIA_List_First                 0x804238d4 /* ..g LONG              */
  1287. #define MUIA_List_Format                0x80423c0a /* isg STRPTR            */
  1288. #define MUIA_List_MultiTestHook         0x8042c2c6 /* is. struct Hook *     */
  1289. #define MUIA_List_Quiet                 0x8042d8c7 /* .s. BOOL              */
  1290. #define MUIA_List_SourceArray           0x8042c0a0 /* i.. APTR              */
  1291. #define MUIA_List_Title                 0x80423e66 /* isg char *            */
  1292. #define MUIA_List_Visible               0x8042191f /* ..g LONG              */
  1293.  
  1294. #define MUIV_List_Active_Off -1
  1295. #define MUIV_List_Active_Top -2
  1296. #define MUIV_List_Active_Bottom -3
  1297. #define MUIV_List_Active_Up -4
  1298. #define MUIV_List_Active_Down -5
  1299. #define MUIV_List_Active_PageUp -6
  1300. #define MUIV_List_Active_PageDown -7
  1301. #define MUIV_List_ConstructHook_String -1
  1302. #define MUIV_List_CopyHook_String -1
  1303. #define MUIV_List_CursorType_None 0
  1304. #define MUIV_List_CursorType_Bar 1
  1305. #define MUIV_List_CursorType_Rect 2
  1306. #define MUIV_List_DestructHook_String -1
  1307.  
  1308.  
  1309. /****************************************************************************/
  1310. /** Floattext.mui 7.39 (10.02.94)                                          **/
  1311. /****************************************************************************/
  1312.  
  1313. #ifdef _DCC
  1314. extern char MUIC_Floattext[];
  1315. #else
  1316. #define MUIC_Floattext "Floattext.mui"
  1317. #endif
  1318.  
  1319. /* Attributes */
  1320.  
  1321. #define MUIA_Floattext_Justify          0x8042dc03 /* isg BOOL              */
  1322. #define MUIA_Floattext_SkipChars        0x80425c7d /* is. STRPTR            */
  1323. #define MUIA_Floattext_TabSize          0x80427d17 /* is. LONG              */
  1324. #define MUIA_Floattext_Text             0x8042d16a /* isg STRPTR            */
  1325.  
  1326.  
  1327.  
  1328. /****************************************************************************/
  1329. /** Volumelist.mui 7.36 (10.02.94)                                         **/
  1330. /****************************************************************************/
  1331.  
  1332. #ifdef _DCC
  1333. extern char MUIC_Volumelist[];
  1334. #else
  1335. #define MUIC_Volumelist "Volumelist.mui"
  1336. #endif
  1337.  
  1338.  
  1339. /****************************************************************************/
  1340. /** Scrmodelist.mui 7.44 (10.02.94)                                        **/
  1341. /****************************************************************************/
  1342.  
  1343. #ifdef _DCC
  1344. extern char MUIC_Scrmodelist[];
  1345. #else
  1346. #define MUIC_Scrmodelist "Scrmodelist.mui"
  1347. #endif
  1348.  
  1349. /* Attributes */
  1350.  
  1351.  
  1352.  
  1353.  
  1354. /****************************************************************************/
  1355. /** Dirlist.mui 7.37 (10.02.94)                                            **/
  1356. /****************************************************************************/
  1357.  
  1358. #ifdef _DCC
  1359. extern char MUIC_Dirlist[];
  1360. #else
  1361. #define MUIC_Dirlist "Dirlist.mui"
  1362. #endif
  1363.  
  1364. /* Methods */
  1365.  
  1366. #define MUIM_Dirlist_ReRead            0x80422d71
  1367.  
  1368. /* Attributes */
  1369.  
  1370. #define MUIA_Dirlist_AcceptPattern      0x8042760a /* is. STRPTR            */
  1371. #define MUIA_Dirlist_Directory          0x8042ea41 /* is. STRPTR            */
  1372. #define MUIA_Dirlist_DrawersOnly        0x8042b379 /* is. BOOL              */
  1373. #define MUIA_Dirlist_FilesOnly          0x8042896a /* is. BOOL              */
  1374. #define MUIA_Dirlist_FilterDrawers      0x80424ad2 /* is. BOOL              */
  1375. #define MUIA_Dirlist_FilterHook         0x8042ae19 /* is. struct Hook *     */
  1376. #define MUIA_Dirlist_MultiSelDirs       0x80428653 /* is. BOOL              */
  1377. #define MUIA_Dirlist_NumBytes           0x80429e26 /* ..g LONG              */
  1378. #define MUIA_Dirlist_NumDrawers         0x80429cb8 /* ..g LONG              */
  1379. #define MUIA_Dirlist_NumFiles           0x8042a6f0 /* ..g LONG              */
  1380. #define MUIA_Dirlist_Path               0x80426176 /* ..g STRPTR            */
  1381. #define MUIA_Dirlist_RejectIcons        0x80424808 /* is. BOOL              */
  1382. #define MUIA_Dirlist_RejectPattern      0x804259c7 /* is. STRPTR            */
  1383. #define MUIA_Dirlist_SortDirs           0x8042bbb9 /* is. LONG              */
  1384. #define MUIA_Dirlist_SortHighLow        0x80421896 /* is. BOOL              */
  1385. #define MUIA_Dirlist_SortType           0x804228bc /* is. LONG              */
  1386. #define MUIA_Dirlist_Status             0x804240de /* ..g LONG              */
  1387.  
  1388. #define MUIV_Dirlist_SortDirs_First 0
  1389. #define MUIV_Dirlist_SortDirs_Last 1
  1390. #define MUIV_Dirlist_SortDirs_Mix 2
  1391. #define MUIV_Dirlist_SortType_Name 0
  1392. #define MUIV_Dirlist_SortType_Date 1
  1393. #define MUIV_Dirlist_SortType_Size 2
  1394. #define MUIV_Dirlist_Status_Invalid 0
  1395. #define MUIV_Dirlist_Status_Reading 1
  1396. #define MUIV_Dirlist_Status_Valid 2
  1397.  
  1398.  
  1399. /****************************************************************************/
  1400. /** Group.mui 7.12 (28.11.93)                                              **/
  1401. /****************************************************************************/
  1402.  
  1403. #ifdef _DCC
  1404. extern char MUIC_Group[];
  1405. #else
  1406. #define MUIC_Group "Group.mui"
  1407. #endif
  1408.  
  1409. /* Methods */
  1410.  
  1411.  
  1412. /* Attributes */
  1413.  
  1414. #define MUIA_Group_ActivePage           0x80424199 /* isg LONG              */
  1415. #define MUIA_Group_Child                0x804226e6 /* i.. Object *          */
  1416. #define MUIA_Group_Columns              0x8042f416 /* is. LONG              */
  1417. #define MUIA_Group_Horiz                0x8042536b /* i.. BOOL              */
  1418. #define MUIA_Group_HorizSpacing         0x8042c651 /* is. LONG              */
  1419. #define MUIA_Group_PageMode             0x80421a5f /* is. BOOL              */
  1420. #define MUIA_Group_Rows                 0x8042b68f /* is. LONG              */
  1421. #define MUIA_Group_SameHeight           0x8042037e /* i.. BOOL              */
  1422. #define MUIA_Group_SameSize             0x80420860 /* i.. BOOL              */
  1423. #define MUIA_Group_SameWidth            0x8042b3ec /* i.. BOOL              */
  1424. #define MUIA_Group_Spacing              0x8042866d /* is. LONG              */
  1425. #define MUIA_Group_VertSpacing          0x8042e1bf /* is. LONG              */
  1426.  
  1427.  
  1428.  
  1429. /****************************************************************************/
  1430. /** Group.mui 7.12 (28.11.93)                                              **/
  1431. /****************************************************************************/
  1432.  
  1433. #ifdef _DCC
  1434. extern char MUIC_Register[];
  1435. #else
  1436. #define MUIC_Register "Register.mui"
  1437. #endif
  1438.  
  1439. /* Attributes */
  1440.  
  1441. #define MUIA_Register_Frame             0x8042349b /* i.g BOOL              */
  1442. #define MUIA_Register_Titles            0x804297ec /* i.g STRPTR *          */
  1443.  
  1444.  
  1445.  
  1446. /****************************************************************************/
  1447. /** Virtgroup.mui 7.36 (10.02.94)                                          **/
  1448. /****************************************************************************/
  1449.  
  1450. #ifdef _DCC
  1451. extern char MUIC_Virtgroup[];
  1452. #else
  1453. #define MUIC_Virtgroup "Virtgroup.mui"
  1454. #endif
  1455.  
  1456. /* Methods */
  1457.  
  1458.  
  1459. /* Attributes */
  1460.  
  1461. #define MUIA_Virtgroup_Height           0x80423038 /* ..g LONG              */
  1462. #define MUIA_Virtgroup_Left             0x80429371 /* isg LONG              */
  1463. #define MUIA_Virtgroup_Top              0x80425200 /* isg LONG              */
  1464. #define MUIA_Virtgroup_Width            0x80427c49 /* ..g LONG              */
  1465.  
  1466.  
  1467.  
  1468. /****************************************************************************/
  1469. /** Scrollgroup.mui 7.34 (10.02.94)                                        **/
  1470. /****************************************************************************/
  1471.  
  1472. #ifdef _DCC
  1473. extern char MUIC_Scrollgroup[];
  1474. #else
  1475. #define MUIC_Scrollgroup "Scrollgroup.mui"
  1476. #endif
  1477.  
  1478. /* Attributes */
  1479.  
  1480. #define MUIA_Scrollgroup_Contents       0x80421261 /* i.. Object *          */
  1481.  
  1482.  
  1483.  
  1484. /****************************************************************************/
  1485. /** Scrollbar.mui 7.12 (28.11.93)                                          **/
  1486. /****************************************************************************/
  1487.  
  1488. #ifdef _DCC
  1489. extern char MUIC_Scrollbar[];
  1490. #else
  1491. #define MUIC_Scrollbar "Scrollbar.mui"
  1492. #endif
  1493.  
  1494.  
  1495. /****************************************************************************/
  1496. /** Listview.mui 7.13 (28.11.93)                                           **/
  1497. /****************************************************************************/
  1498.  
  1499. #ifdef _DCC
  1500. extern char MUIC_Listview[];
  1501. #else
  1502. #define MUIC_Listview "Listview.mui"
  1503. #endif
  1504.  
  1505. /* Attributes */
  1506.  
  1507. #define MUIA_Listview_ClickColumn       0x8042d1b3 /* ..g LONG              */
  1508. #define MUIA_Listview_DefClickColumn    0x8042b296 /* isg LONG              */
  1509. #define MUIA_Listview_DoubleClick       0x80424635 /* i.g BOOL              */
  1510. #define MUIA_Listview_Input             0x8042682d /* i.. BOOL              */
  1511. #define MUIA_Listview_List              0x8042bcce /* i.. Object *          */
  1512. #define MUIA_Listview_MultiSelect       0x80427e08 /* i.. LONG              */
  1513. #define MUIA_Listview_SelectChange      0x8042178f /* ..g BOOL              */
  1514.  
  1515. #define MUIV_Listview_MultiSelect_None 0
  1516. #define MUIV_Listview_MultiSelect_Default 1
  1517. #define MUIV_Listview_MultiSelect_Shifted 2
  1518. #define MUIV_Listview_MultiSelect_Always 3
  1519.  
  1520.  
  1521. /****************************************************************************/
  1522. /** Radio.mui 7.12 (28.11.93)                                              **/
  1523. /****************************************************************************/
  1524.  
  1525. #ifdef _DCC
  1526. extern char MUIC_Radio[];
  1527. #else
  1528. #define MUIC_Radio "Radio.mui"
  1529. #endif
  1530.  
  1531. /* Attributes */
  1532.  
  1533. #define MUIA_Radio_Active               0x80429b41 /* isg LONG              */
  1534. #define MUIA_Radio_Entries              0x8042b6a1 /* i.. STRPTR *          */
  1535.  
  1536.  
  1537.  
  1538. /****************************************************************************/
  1539. /** Cycle.mui 7.16 (28.11.93)                                              **/
  1540. /****************************************************************************/
  1541.  
  1542. #ifdef _DCC
  1543. extern char MUIC_Cycle[];
  1544. #else
  1545. #define MUIC_Cycle "Cycle.mui"
  1546. #endif
  1547.  
  1548. /* Attributes */
  1549.  
  1550. #define MUIA_Cycle_Active               0x80421788 /* isg LONG              */
  1551. #define MUIA_Cycle_Entries              0x80420629 /* i.. STRPTR *          */
  1552.  
  1553. #define MUIV_Cycle_Active_Next -1
  1554. #define MUIV_Cycle_Active_Prev -2
  1555.  
  1556.  
  1557. /****************************************************************************/
  1558. /** Slider.mui 7.12 (28.11.93)                                             **/
  1559. /****************************************************************************/
  1560.  
  1561. #ifdef _DCC
  1562. extern char MUIC_Slider[];
  1563. #else
  1564. #define MUIC_Slider "Slider.mui"
  1565. #endif
  1566.  
  1567. /* Attributes */
  1568.  
  1569. #define MUIA_Slider_Level               0x8042ae3a /* isg LONG              */
  1570. #define MUIA_Slider_Max                 0x8042d78a /* i.. LONG              */
  1571. #define MUIA_Slider_Min                 0x8042e404 /* i.. LONG              */
  1572. #define MUIA_Slider_Quiet               0x80420b26 /* i.. BOOL              */
  1573. #define MUIA_Slider_Reverse             0x8042f2a0 /* isg BOOL              */
  1574.  
  1575.  
  1576.  
  1577. /****************************************************************************/
  1578. /** Coloradjust.mui 7.46 (10.02.94)                                        **/
  1579. /****************************************************************************/
  1580.  
  1581. #ifdef _DCC
  1582. extern char MUIC_Coloradjust[];
  1583. #else
  1584. #define MUIC_Coloradjust "Coloradjust.mui"
  1585. #endif
  1586.  
  1587. /* Attributes */
  1588.  
  1589. #define MUIA_Coloradjust_Blue           0x8042b8a3 /* isg ULONG             */
  1590. #define MUIA_Coloradjust_Green          0x804285ab /* isg ULONG             */
  1591. #define MUIA_Coloradjust_ModeID         0x8042ec59 /* isg ULONG             */
  1592. #define MUIA_Coloradjust_Red            0x80420eaa /* isg ULONG             */
  1593. #define MUIA_Coloradjust_RGB            0x8042f899 /* isg ULONG *           */
  1594.  
  1595.  
  1596.  
  1597. /****************************************************************************/
  1598. /** Palette.mui 7.35 (10.02.94)                                            **/
  1599. /****************************************************************************/
  1600.  
  1601. #ifdef _DCC
  1602. extern char MUIC_Palette[];
  1603. #else
  1604. #define MUIC_Palette "Palette.mui"
  1605. #endif
  1606.  
  1607. /* Attributes */
  1608.  
  1609. #define MUIA_Palette_Entries            0x8042a3d8 /* i.g struct MUI_Palette_Entry * */
  1610. #define MUIA_Palette_Groupable          0x80423e67 /* isg BOOL              */
  1611. #define MUIA_Palette_Names              0x8042c3a2 /* isg char **           */
  1612.  
  1613.  
  1614.  
  1615. /****************************************************************************/
  1616. /** Colorpanel.mui 7.11 (10.02.94)                                         **/
  1617. /****************************************************************************/
  1618.  
  1619. #ifdef _DCC
  1620. extern char MUIC_Colorpanel[];
  1621. #else
  1622. #define MUIC_Colorpanel "Colorpanel.mui"
  1623. #endif
  1624.  
  1625. /* Methods */
  1626.  
  1627.  
  1628. /* Attributes */
  1629.  
  1630.  
  1631.  
  1632.  
  1633. /****************************************************************************/
  1634. /** Popstring.mui 7.19 (02.12.93)                                          **/
  1635. /****************************************************************************/
  1636.  
  1637. #ifdef _DCC
  1638. extern char MUIC_Popstring[];
  1639. #else
  1640. #define MUIC_Popstring "Popstring.mui"
  1641. #endif
  1642.  
  1643. /* Methods */
  1644.  
  1645. #define MUIM_Popstring_Close           0x8042dc52
  1646. #define MUIM_Popstring_Open            0x804258ba
  1647. struct  MUIP_Popstring_Close           { ULONG id; LONG result; };
  1648.  
  1649. /* Attributes */
  1650.  
  1651. #define MUIA_Popstring_Button           0x8042d0b9 /* i.g Object *          */
  1652. #define MUIA_Popstring_CloseHook        0x804256bf /* isg struct Hook *     */
  1653. #define MUIA_Popstring_OpenHook         0x80429d00 /* isg struct Hook *     */
  1654. #define MUIA_Popstring_String           0x804239ea /* i.g Object *          */
  1655. #define MUIA_Popstring_Toggle           0x80422b7a /* isg BOOL              */
  1656.  
  1657.  
  1658.  
  1659. /****************************************************************************/
  1660. /** Popobject.mui 7.18 (02.12.93)                                          **/
  1661. /****************************************************************************/
  1662.  
  1663. #ifdef _DCC
  1664. extern char MUIC_Popobject[];
  1665. #else
  1666. #define MUIC_Popobject "Popobject.mui"
  1667. #endif
  1668.  
  1669. /* Attributes */
  1670.  
  1671. #define MUIA_Popobject_Follow           0x80424cb5 /* isg BOOL              */
  1672. #define MUIA_Popobject_Light            0x8042a5a3 /* isg BOOL              */
  1673. #define MUIA_Popobject_Object           0x804293e3 /* i.g Object *          */
  1674. #define MUIA_Popobject_ObjStrHook       0x8042db44 /* isg struct Hook *     */
  1675. #define MUIA_Popobject_StrObjHook       0x8042fbe1 /* isg struct Hook *     */
  1676. #define MUIA_Popobject_Volatile         0x804252ec /* isg BOOL              */
  1677.  
  1678.  
  1679.  
  1680. /****************************************************************************/
  1681. /** Popasl.mui 7.5 (03.12.93)                                              **/
  1682. /****************************************************************************/
  1683.  
  1684. #ifdef _DCC
  1685. extern char MUIC_Popasl[];
  1686. #else
  1687. #define MUIC_Popasl "Popasl.mui"
  1688. #endif
  1689.  
  1690. /* Attributes */
  1691.  
  1692. #define MUIA_Popasl_Active              0x80421b37 /* ..g BOOL              */
  1693. #define MUIA_Popasl_StartHook           0x8042b703 /* isg struct Hook *     */
  1694. #define MUIA_Popasl_StopHook            0x8042d8d2 /* isg struct Hook *     */
  1695. #define MUIA_Popasl_Type                0x8042df3d /* i.g ULONG             */
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702. /*************************************************************************
  1703. ** Structures and Macros for creating custom classes.
  1704. *************************************************************************/
  1705.  
  1706.  
  1707. /*
  1708. ** GENERAL NOTES:
  1709. **
  1710. ** - Everything described in this header file is only valid within
  1711. **   MUI classes. You may never use any of these things out of
  1712. **   a class, e.g. in a traditional MUI application.
  1713. **
  1714. ** - Except when otherwise stated, all structures are strictly read only.
  1715. */
  1716.  
  1717.  
  1718. /* Global information for every object */
  1719.  
  1720. struct MUI_GlobalInfo
  1721. {
  1722.     ULONG priv0;
  1723.     Object                   *mgi_ApplicationObject;
  1724.  
  1725.     /* ... private data follows ... */
  1726. };
  1727.  
  1728.  
  1729. /* Instance data of notify class */
  1730.  
  1731. struct MUI_NotifyData
  1732. {
  1733.     struct MUI_GlobalInfo *mnd_GlobalInfo;
  1734.     ULONG                  mnd_UserData;
  1735.     ULONG priv1;
  1736.     ULONG priv2;
  1737.     ULONG priv3;
  1738.     ULONG priv4;
  1739.     ULONG priv5;
  1740. };
  1741.  
  1742.  
  1743. /* MUI_MinMax structure holds information about minimum, maximum
  1744.    and default dimensions of an object. */
  1745.  
  1746. struct MUI_MinMax
  1747. {
  1748.     WORD MinWidth;
  1749.     WORD MinHeight;
  1750.     WORD MaxWidth;
  1751.     WORD MaxHeight;
  1752.     WORD DefWidth;
  1753.     WORD DefHeight;
  1754. };
  1755.  
  1756. #define MUI_MAXMAX 10000 /* use this if a dimension is not limited. */
  1757.  
  1758.  
  1759. /* (partial) instance data of area class */
  1760.  
  1761. struct MUI_AreaData
  1762. {
  1763.     struct MUI_RenderInfo *mad_RenderInfo;  /* RenderInfo for this object */
  1764.     ULONG priv6;
  1765.     struct TextFont       *mad_Font;        /* Font */
  1766.     struct MUI_MinMax      mad_MinMax;      /* min/max/default sizes */
  1767.     struct IBox            mad_Box;         /* position and dimension */
  1768.     BYTE                   mad_addleft;     /* frame & innerspacing left offset */
  1769.     BYTE                   mad_addtop;      /* frame & innerspacing top offset  */
  1770.     BYTE                   mad_subwidth;    /* frame & innerspacing add. width  */
  1771.     BYTE                   mad_subheight;   /* frame & innerspacing add. height */
  1772.     ULONG                  mad_Flags;       /* see definitions below */
  1773.  
  1774.     /* ... private data follows ... */
  1775. };
  1776.  
  1777. /* Definitions for mad_Flags, other flags are private */
  1778.  
  1779. #define MADF_DRAWOBJECT        (1<< 0) /* completely redraw yourself */
  1780. #define MADF_DRAWUPDATE        (1<< 1) /* only update yourself */
  1781.  
  1782.  
  1783.  
  1784.  
  1785. /* MUI's draw pens */
  1786.  
  1787. #define MPEN_SHINE      0
  1788. #define MPEN_HALFSHINE  1
  1789. #define MPEN_BACKGROUND 2
  1790. #define MPEN_HALFSHADOW 3
  1791. #define MPEN_SHADOW     4
  1792. #define MPEN_TEXT       5
  1793. #define MPEN_FILL       6
  1794. #define MPEN_ACTIVEOBJ  7
  1795. #define MPEN_COUNT      8
  1796.  
  1797.  
  1798. /* Information on display environment */
  1799.  
  1800. struct MUI_RenderInfo
  1801. {
  1802.     Object          *mri_WindowObject;  /* valid between MUIM_Setup/MUIM_Cleanup */
  1803.  
  1804.     struct Screen   *mri_Screen;        /* valid between MUIM_Setup/MUIM_Cleanup */
  1805.     struct DrawInfo *mri_DrawInfo;      /* valid between MUIM_Setup/MUIM_Cleanup */
  1806.     UWORD           *mri_Pens;          /* valid between MUIM_Setup/MUIM_Cleanup */
  1807.     struct Window   *mri_Window;        /* valid between MUIM_Show/MUIM_Hide */
  1808.     struct RastPort *mri_RastPort;      /* valid between MUIM_Show/MUIM_Hide */
  1809.  
  1810.     /* ... private data follows ... */
  1811. };
  1812.  
  1813.  
  1814.  
  1815. /* the following macros can be used to get pointers to an objects
  1816.    GlobalInfo and RenderInfo structures. */
  1817.  
  1818. struct __dummyXFC2__
  1819. {
  1820.     struct MUI_NotifyData mnd;
  1821.     struct MUI_AreaData   mad;
  1822. };
  1823.  
  1824. #define muiNotifyData(obj) (&(((struct __dummyXFC2__ *)(obj))->mnd))
  1825. #define muiAreaData(obj)   (&(((struct __dummyXFC2__ *)(obj))->mad))
  1826.  
  1827. #define muiGlobalInfo(obj) (((struct __dummyXFC2__ *)(obj))->mnd.mnd_GlobalInfo)
  1828. #define muiRenderInfo(obj) (((struct __dummyXFC2__ *)(obj))->mad.mad_RenderInfo)
  1829.  
  1830.  
  1831.  
  1832. /* User configurable keyboard events coming with MUIM_HandleInput */
  1833.  
  1834. enum
  1835. {
  1836.     MUIKEY_RELEASE = -2, /* not a real key, faked when MUIKEY_PRESS is released */
  1837.     MUIKEY_NONE    = -1,
  1838.     MUIKEY_PRESS,
  1839.     MUIKEY_TOGGLE,
  1840.     MUIKEY_UP,
  1841.     MUIKEY_DOWN,
  1842.     MUIKEY_PAGEUP,
  1843.     MUIKEY_PAGEDOWN,
  1844.     MUIKEY_TOP,
  1845.     MUIKEY_BOTTOM,
  1846.     MUIKEY_LEFT,
  1847.     MUIKEY_RIGHT,
  1848.     MUIKEY_WORDLEFT,
  1849.     MUIKEY_WORDRIGHT,
  1850.     MUIKEY_LINESTART,
  1851.     MUIKEY_LINEEND,
  1852.     MUIKEY_GADGET_NEXT,
  1853.     MUIKEY_GADGET_PREV,
  1854.     MUIKEY_GADGET_OFF,
  1855.     MUIKEY_WINDOW_CLOSE,
  1856.     MUIKEY_WINDOW_NEXT,
  1857.     MUIKEY_WINDOW_PREV,
  1858.     MUIKEY_HELP,
  1859. };
  1860.  
  1861.  
  1862. /* Some useful shortcuts. define MUI_NOSHORTCUTS to get rid of them */
  1863.  
  1864. #ifndef MUI_NOSHORTCUTS
  1865.  
  1866. #define _app(obj)         (muiGlobalInfo(obj)->mgi_ApplicationObject)
  1867. #define _win(obj)         (muiRenderInfo(obj)->mri_WindowObject)
  1868. #define _dri(obj)         (muiRenderInfo(obj)->mri_DrawInfo)
  1869. #define _window(obj)      (muiRenderInfo(obj)->mri_Window)
  1870. #define _screen(obj)      (muiRenderInfo(obj)->mri_Screen)
  1871. #define _rp(obj)          (muiRenderInfo(obj)->mri_RastPort)
  1872. #define _left(obj)        (muiAreaData(obj)->mad_Box.Left)
  1873. #define _top(obj)         (muiAreaData(obj)->mad_Box.Top)
  1874. #define _width(obj)       (muiAreaData(obj)->mad_Box.Width)
  1875. #define _height(obj)      (muiAreaData(obj)->mad_Box.Height)
  1876. #define _right(obj)       (_left(obj)+_width(obj)-1)
  1877. #define _bottom(obj)      (_top(obj)+_height(obj)-1)
  1878. #define _addleft(obj)     (muiAreaData(obj)->mad_addleft  )
  1879. #define _addtop(obj)      (muiAreaData(obj)->mad_addtop   )
  1880. #define _subwidth(obj)    (muiAreaData(obj)->mad_subwidth )
  1881. #define _subheight(obj)   (muiAreaData(obj)->mad_subheight)
  1882. #define _mleft(obj)       (_left(obj)+_addleft(obj))
  1883. #define _mtop(obj)        (_top(obj)+_addtop(obj))
  1884. #define _mwidth(obj)      (_width(obj)-_subwidth(obj))
  1885. #define _mheight(obj)     (_height(obj)-_subheight(obj))
  1886. #define _mright(obj)      (_mleft(obj)+_mwidth(obj)-1)
  1887. #define _mbottom(obj)     (_mtop(obj)+_mheight(obj)-1)
  1888. #define _font(obj)        (muiAreaData(obj)->mad_Font)
  1889. #define _flags(obj)       (muiAreaData(obj)->mad_Flags)
  1890.  
  1891. #endif
  1892.  
  1893.  
  1894. #endif /* MUI_H */
  1895.